/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-04-27
 * Time: 22:13
 */
public class Solution {
    public boolean Find(int target, int [][] array) {
        int row = array.length;
        int col = array[0].length;
        // 查找的过程实际上是排除的过程
        // 一次排除的越多, 那么效率就越高
        int i = 0;
        int j = col - 1;
        // 由题意, 右上角的数字是该行最大的, 同时是该列最小的
        // 那么根据这个数字就可以就一次排除一行或者一列
        while(i < row && j >= 0){
            if(array[i][j] < target){
                i++;
            } else if (array[i][j] == target) {
                return true;
            }else{
                j--;
            }
        }
        return false;
    }
}
